/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clases;

import com.itextpdf.text.Document;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 *
 * @author charles
 */
public class Constancia extends Reporte {

    public Preinscrito preinscrito;
    private Institucion institucion;
    private Parada parada;
    private Turno turno;

    public Constancia() {
    }

    public Institucion getInstitucion() {
        return institucion;
    }

    public void setInstitucion(Institucion institucion) {
        this.institucion = institucion;
    }

    public Parada getParada() {
        return parada;
    }

    public void setParada(Parada parada) {
        this.parada = parada;
    }

    public Preinscrito getPreinscrito() {
        return preinscrito;
    }

    public void setPreinscrito(Preinscrito preinscrito) {
        this.preinscrito = preinscrito;
    }

    public Turno getTurno() {
        return turno;
    }

    public void setTurno(Turno turno) {
        this.turno = turno;
    }

    public void generar(String path) throws FileNotFoundException {
        FileOutputStream f = new FileOutputStream(path);
        Document document = new Document();

        try {
            PdfWriter writer = PdfWriter.getInstance(document, f);
            Rectangle rct = new Rectangle(36, 54, 559, 788);
            //Definimos un nombre y un tamaño para el PageBox los nombres posibles son: “crop”, “trim”, “art” and “bleed”.
            writer.setBoxSize("art", rct);
            HeaderFooter event = new HeaderFooter(this.getId(), this.getNumAutenticacion());
            writer.setPageEvent(event);
            document.open();
            //Encabezado
            Font fuente = new Font(Font.getFamily("ARIAL"), 20, Font.BOLD);
            Font fuente1 = new Font(Font.getFamily("ARIAL"), 14);
            Font fuente2 = new Font(Font.getFamily("ARIAL"), 16, Font.BOLD);
            String encabezado = "           CONSTANCIA DE PREINSCRIPCION";
            Paragraph pa = new Paragraph(encabezado, fuente);
            pa.setSpacingBefore(15);
            pa.setSpacingAfter(40);
            pa.setIndentationLeft(50);
            document.add(pa);
            // 
            String s = "Estimado: " + preinscrito.getNombres() + " " + preinscrito.getApellidos() + " :\n\n";
            s +="    Nos complace informarle que usted ha sido seleccionado para"
                    + " la presentación de la prueba de admisión del PIO. "
                    + "Esta prueba se realizará en la Universidad Simón Bolívar,"
                    + " que le ofrecerá el transporte para asistir ese día.  "
                    + "Si va a abordar el autobús de la Universidad se recomienda "
                    + "que esté en la parada asignada una hora antes del inicio "
                    + "de la prueba. Si usted así lo desea, puede trasladarse "
                    + "hasta la Universidad por algún otro medio.  \n\n   A continuacion "
                    + "se les indicara sus datos personales e informacion respecto a la prueba:";
            
            Paragraph p = new Paragraph(s, fuente1);
            p.setSpacingBefore(0);
            p.setSpacingAfter(10);
            p.setIndentationLeft(50);
            document.add(p);
            s = "Numero de Preinscripcion: " + preinscrito.getId() + "-" + preinscrito.getInstitucionId() + "\n";
            s += "Cedula: " + preinscrito.getCedula() + "\n";
            s += "Institucion: " + institucion.getNombre() + "\n";
            s += "Fecha del Examen: " + turno.getDia() + "\n";
            s += "Hora del Examen: " + turno.getHora() + "\n";
            s += "Aula del Examen: " + preinscrito.getAulaPrueba() + "\n";
            s += "Parada para tomar el bus: " + parada.getNombre() + "\n";
            s += "Direccion de la parada: " + parada.getDescripcion()+ "\n";
            s += "Sede del Examen: " + preinscrito.getSede() + "\n";
            

            p = new Paragraph(s, fuente1);
            p.setSpacingBefore(0);
            p.setSpacingAfter(10);
            p.setIndentationLeft(50);
            document.add(p);

            s = "Nota: es importante que el día de la prueba tenga la constancia "
                    + "de preinscripción. Si no la trae, no podrá presentar el examen. "
                    + "En la página Web: http://pio.dex.usb.ve/ "
                    + "encontrará un modelo prueba.";
            p = new Paragraph(s, fuente2);
            p.setSpacingBefore(0);
            p.setSpacingAfter(10);
            p.setIndentationLeft(50);
            document.add(p);

            document.close();
            f.flush();
            f.close();
        } catch (Exception e) {
            //imprimimos los errores
            System.err.println(e);
            e.printStackTrace();
        }
    }
}
